#include "serial.h"

Serial::Serial(QObject *parent) : QObject(parent)
{
    //查找可用的串口
    foreach(const QSerialPortInfo &info,QSerialPortInfo::availablePorts())
    {
        serial=new QSerialPort;
        serial->setPort(info);
        welog_debug() << "name : " << serial->portName();

         //设置串口名
         serial->setPortName(serial->portName());
         //打开串口
         serial->open(QIODevice::ReadWrite);
         //设置波特率
         serial->setBaudRate(QSerialPort::Baud115200);
         serial->setDataBits(QSerialPort::Data8);
         serial->setParity(QSerialPort::NoParity);
         serial->setStopBits(QSerialPort::OneStop);
         serial->setFlowControl(QSerialPort::NoFlowControl);//设置为无流控制
         //connect(serial,&QSerialPort::readyRead,this,&Serial::ReadData);

         if(serial->isOpen())
         {
             sendData("hello");
         }
        else
         {
             if(serial->open(QIODevice::ReadWrite))
            {
                //ui->portBox->addItem(serial->portName());
                welog_debug() << "open ok";
                serial->write("hello");
            }
            else
            {
                welog_debug() << "open fail:" << serial->error() << " " << serial->errorString();
                serial->close();
            }
         }

         break;
    }
}

Serial::~Serial()
{
    welog_debug() << "~Serial";
    if(serial)
    {
        welog_debug() << "close serial";
        serial->close();
        delete(serial);
        serial = nullptr;
    }
}


void Serial::sendData(QByteArray data)
{
    serial->write(data);
}

void Serial::ReadData()
{
    QByteArray buf = serial->readAll();
    if(!buf.isEmpty())
    {
        welog_debug() << buf;
    }
}


